<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Map with some updates on links performed</title>
    <style type="text/css">
        body {
            color: #5d5d5d;
            font-family: Helvetica, Arial, sans-serif;
        }

        h1 {
            font-size: 30px;
            margin: auto;
            margin-top: 50px;
        }

        .container {
            max-width: 800px;
            margin: auto;
        }

        /* Specific mapael css class are below
         * 'mapael' class is added by plugin
        */

        .mapael .map {
            position: relative;
        }

        .mapael .mapTooltip {
            position: fixed;
            background-color: #fff;
            moz-opacity: 0.70;
            opacity: 0.70;
            filter: alpha(opacity=70);
            border-radius: 10px;
            padding: 10px;
            z-index: 1000;
            max-width: 200px;
            display: none;
            color: #343434;
        }

        /* For all zoom buttons */
        .mapael .zoomButton {
            background-color: #fff;
            border: 1px solid #ccc;
            color: #000;
            width: 15px;
            height: 15px;
            line-height: 15px;
            text-align: center;
            border-radius: 3px;
            cursor: pointer;
            position: absolute;
            top: 0;
            font-weight: bold;
            left: 10px;

            -webkit-user-select: none;
            -khtml-user-select : none;
            -moz-user-select: none;
            -o-user-select : none;
            user-select: none;
        }

        /* Reset Zoom button first */
        .mapael .zoomReset {
            top: 10px;
        }

        /* Then Zoom In button */
        .mapael .zoomIn {
            top: 30px;
        }

        /* Then Zoom Out button */
        .mapael .zoomOut {
            top: 50px;
        }
    </style>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" charset="utf-8"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"
            charset="utf-8"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.2.7/raphael.min.js" charset="utf-8"></script>
    <script src="../../js/jquery.mapael.js" charset="utf-8"></script>
    <script src="../../js/maps/france_departments.js" charset="utf-8"></script>
    <script src="../../js/maps/world_countries.js" charset="utf-8"></script>
    <script src="../../js/maps/usa_states.js" charset="utf-8"></script>

    <script type="text/javascript">
        $(function () {
            $(".mapcontainer").mapael({
                map: {
                    name: "france_departments"
                    , zoom: {
                        enabled: true
                    }
                    , defaultArea: {
                        attrs: {
                            fill: "#f4f4e8"
                            , stroke: "#ced8d0"
                        }
                        , text: {
                            attrs: {
                                fill: "#505444"
                            }
                            , attrsHover: {
                                fill: "#000"
                            }
                        }
                    }
                },

                plots: {
                    'paris': {
                        latitude: 48.86,
                        longitude: 2.3444
                    },
                    'lyon': {
                        latitude: 45.758888888889,
                        longitude: 4.8413888888889,
                    },
                    'rennes': {
                        latitude: 48.114166666667,
                        longitude: -1.6808333333333,
                    }
                },
                links: {
                    'parislyon': {
                        factor: -0.3
                        , between: ['paris', 'lyon']
                        , attrs: {
                            "stroke-width": 2
                        }
                    },
                    'parisrennes': {
                        factor: -0.5
                        , between: ['paris', 'rennes']
                        , attrs: {
                            "stroke-width": 2
                        }
                    }
                }
            });

            $('#refresh').on('click', function () {

                // Update some plots and areas attributes ...
                var opt = {
                    mapOptions: {
                        'areas': {},
                        'plots': {},
                        'links': {
                            'parislyon': {
                                attrs: {
                                    'stroke-width': 8
                                    , 'stroke': 'red'
                                }
                            }
                        },

                    }, 
                    animDuration: 1000,
                    'deleteLinkKeys': ['parisrennes'],
                    'newLinks': {
                        'renneslyon': {
                            factor: -0.5
                            , between: ['rennes', 'lyon']
                            , attrs: {
                                "stroke-width": 2
                            }
                        }
                    }
                };

                $(".mapcontainer").trigger('update', [opt]);
            });
        });
    </script>

</head>

<body>
<div class="container">

    <h1>Map with some updates on links performed</h1>

    <div class="mapcontainer">
        <input type="button" value="Update elements" id="refresh"/>

        <div class="map">
            <span>Alternative content for the map</span>
        </div>
    </div>

    <p><b>All example for jQuery Mapael are available <a href="https://www.vincentbroute.fr/mapael/">here</a>.</b></p>

</div>


</body>
</html>